package CONTABILIDAD_MODELO;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class CON_TC_CIERRE {

    private Double ID_FECHA;
    private Double ID_MONEDA;
    private Double MONTO;
    private Conexion con = null;

    public CON_TC_CIERRE() {
    }

    public CON_TC_CIERRE(Double ID_FECHA, Double ID_MONEDA, Double MONTO) {
        this.ID_FECHA = ID_FECHA;
        this.ID_MONEDA = ID_MONEDA;
        this.MONTO = MONTO;
    }

    public boolean Insertar() {
        try {
            String consulta = "insert into BROKER.CON_TC_CIERRE(ID_FECHA, ID_MONEDA, MONTO) VALUES (" + ID_FECHA + "," + ID_MONEDA + "," + MONTO + ")";
            con.EjecutarSentencia(consulta);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    public boolean Eliminar() {
        try {
            String consulta = "delete from BROKER.CON_TC_CIERRE where ID_FECHA= " + ID_FECHA + " and ID_MONEDA =" + ID_MONEDA;
            con.EjecutarSentencia(consulta);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    public List<CON_TC_CIERRE> Todos() {
        try {
            String consulta = "select * from BROKER.CON_TC_CIERRE";
            ResultSet rs = con.EjecutarConsulta(consulta);
            return Cargar(rs);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    public List<CON_TC_CIERRE> buscarXid(double id) {
        try {
            String consulta = "select * from BROKER.CON_TC_CIERRE where ID_FECHA="+id+" order by CON_TC_CIERRE.ID_MONEDA ASC";
            ResultSet rs = con.EjecutarConsulta(consulta);
            return Cargar(rs);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public CON_TC_CIERRE BuscarXAcronimo_FECHA_CIERRA(String acronimo, double fecha_cierre){
		try{String consulta = "SELECT CON_TC_CIERRE.*\n" +
                                "  FROM BROKER.CON_TC_CIERRE, BROKER.CON_MONEDA\n" +
                                " WHERE     (CON_TC_CIERRE.ID_MONEDA = CON_MONEDA.ID)\n" +
                                "       AND (CON_MONEDA.ACRONIMO = '"+acronimo+"')\n" +
                                "       AND (CON_TC_CIERRE.ID_FECHA = "+fecha_cierre+")";
			ResultSet rs = con.EjecutarConsulta(consulta);
			return Cargar(rs).get(0);}
		catch(Exception e){
			e.printStackTrace();}
			return null;
    }
    
    public List<CON_TC_CIERRE> Cargar(ResultSet rs) {
        try {
            List<CON_TC_CIERRE> lista = new ArrayList<CON_TC_CIERRE>();
            while (rs.next()) {
                CON_TC_CIERRE objeto = new CON_TC_CIERRE();
                objeto.setID_FECHA(rs.getDouble("ID_FECHA"));
                objeto.setID_MONEDA(rs.getDouble("ID_MONEDA"));
                objeto.setMONTO(rs.getDouble("MONTO"));
                objeto.setCon(con);
                lista.add(objeto);
            }
            return lista;
        } catch (SQLException ex) {
            ex.printStackTrace();
            return null;
        }
    }

    public double getID_FECHA() {
        return ID_FECHA;
    }

    public void setID_FECHA(double ID_FECHA) {
        this.ID_FECHA = ID_FECHA;
    }

    public double getID_MONEDA() {
        return ID_MONEDA;
    }

    public void setID_MONEDA(double ID_MONEDA) {
        this.ID_MONEDA = ID_MONEDA;
    }

    public double getMONTO() {
        return MONTO;
    }

    public void setMONTO(Double MONTO) {
        this.MONTO = MONTO;
    }

    public Conexion getCon() {
        return this.con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }
}
